﻿using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using System;
using System.ComponentModel.DataAnnotations;

namespace BCDto.Location.Horseman
{
    public class HorsemanLocationBsonDto
    {

        public ObjectId Id { get; set; }
        /// <summary>
        /// 骑手编号
        /// </summary>
        [Display(Name = "骑手编号")]
        [BsonElement("DriverId")]
        public long DriverId { get; set; }
        /// <summary>
        /// 骑手电话
        /// </summary>
        [Display(Name = "骑手电话")]
        [BsonElement("Phone")]
        public string Phone { get; set; }
        /// <summary>
        /// 所在位置精度
        /// </summary>
        [Display(Name = "所在位置精度")]
        [BsonElement("Longitude")]
        public double Longitude { get; set; }
        /// <summary>
        /// 所在位置精维度
        /// </summary>
        [BsonElement("Coordinate")]
        public double[] Coordinate { get; set; }
        /// <summary>
        /// 所在位置纬度
        /// </summary>
        [Display(Name = "所在位置纬度")]
        [BsonElement("Latitude")]
        public double Latitude { get; set; }
        /// <summary>
        /// 车牌号
        /// </summary>
        [Display(Name = "车牌号")]
        [BsonElement("VehicleNo")]
        public string VehicleNo { get; set; }
        /// <summary>
        /// 骑手名称
        /// </summary>
        [Display(Name = "骑手名称")]
        [BsonElement("Name")]
        public string Name { get; set; }
        /// <summary>
        /// 骑手头像
        /// </summary>
        [Display(Name = "骑手头像")]
        [BsonElement("DriverPhotoPath")]
        public string DriverPhotoPath { get; set; }
        /// <summary>
        /// 所在城市编码
        /// </summary>
        [Display(Name = "所在城市编码")]
        [BsonElement("CityCode")]
        public string CityCode { get; set; }
        /// <summary>
        /// 所在区县编码
        /// </summary>
        [Display(Name = "所在区县编码")]
        [BsonElement("CountyCode")]
        public string CountyCode { get; set; }
        /// <summary>
        /// 位置更新时间
        /// </summary>
        [Display(Name = "位置更新时间")]
        [BsonElement("ModifyTime")]
        [BsonDateTimeOptions(Kind = DateTimeKind.Local)]
        public DateTime ModifyTime { get; set; }
        /// <summary>
        /// 是否接收指派
        /// </summary>
        [BsonElement("IsAcceptAssign")]
        public bool IsAcceptAssign { get; set; }
        /// <summary>
        /// 配送箱长
        /// </summary>
        [BsonElement("DeliveryBoxLength")]
        public long DeliveryBoxLength { get; set; }
        /// <summary>
        /// 配送箱宽
        /// </summary>
        [BsonElement("DeliveryBoxWidth")]
        public long DeliveryBoxWidth { get; set; }
        /// <summary>
        /// 配送箱高
        /// </summary>
        [BsonElement("DeliveryBoxHeight")]
        public long DeliveryBoxHeight { get; set; }
        /// <summary>
        /// 信用值
        /// </summary>
        [BsonElement("CreditScore")]
        public decimal? CreditScore { get; set; }
        /// <summary>
        /// 日接单数
        /// </summary>
        [Display(Name = "日接单数")]
        [BsonElement("DailyReceivedOrders")]
        public int DailyReceivedOrders { get; set; }

        /// <summary>
        /// 总接单数
        /// </summary>
        [Display(Name = "总接单数")]
        [BsonElement("TotalReceivedOrders")]
        public int TotalReceivedOrders { get; set; }
    }
}
